package cn.ncupyh.comptest;

//最大公约数
public class MaxPublicNumber {
    public static void main(String[] args) {
        //给定两个数，求这两个数的最大公约数
        //例如：输入：20 40
        //     输出：20

        //法一:(不好)
//        //公因数:本身或者2,3,5,7,
//        int a = 3;//较大值
//        int b = 7;//较小值
//        int max = 0;
//        if (a < b) {//较大值为a,较小值为b
//            int tmp = a;
//            a = b;
//            b = tmp;
//        }
//        if (a % b == 0) {
//            max = b;
//            System.out.println(max + "是最大公约数");
//
//        } else {
//            int tmp = a % b;//取余数
//            while (tmp != 1) {
//                int t = tmp;
//                tmp = b % t;
//                if (tmp == 0) {
////           说明:有公因数了
//                    max = t / (b / t);
//                    System.out.println(max + "是最大公约数");
//                    break;
//                } else b = t;
//            }
//            if (tmp == 1)
//                System.out.println("最大公约数为1");
//        }

        //法二:辗转相除法
        int a = 35;
        int b = 40;
        int c = a % b;
        while (c != 0) {
            a = b;
            b = c;
            c = a % b;
        }
        System.out.println(b+"为最大公约数");

    }
}
